package com.xuelang.pipeline.artifact.app.harborv2.xo;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectMetadata {
    /**
     * The public status of the project. The valid values are "true", "false".
     */
    @JsonProperty("public")
    private String requestPublic;
    /**
     * Whether generating SBOM automatically when pushing a subject artifact. The valid values
     * are "true", "false".
     */
    //private String autoSbomGeneration;
    /**
     * Whether scan images automatically when pushing. The valid values are "true", "false".
     */
    //private String autoScan;
    /**
     * Whether content trust is enabled or not. If it is enabled, user can't pull unsigned
     * images from this project. The valid values are "true", "false".
     */
    //private String enableContentTrust;
    /**
     * Whether cosign content trust is enabled or not. If it is enabled, user can't pull images
     * without cosign signature from this project. The valid values are "true", "false".
     */
    //private String enableContentTrustCosign;
    /**
     * Whether prevent the vulnerable images from running. The valid values are "true", "false".
     */
    //private String preventVul;
    /**
     * The public status of the project. The valid values are "true", "false".
     */
    //private String projectMetadataPublic;
    /**
     * The ID of the tag retention policy for the project
     */
    //private String retentionId;
    /**
     * Whether this project reuse the system level CVE allowlist as the allowlist of its own.
     * The valid values are "true", "false". If it is set to "true" the actual allowlist
     * associate with this project, if any, will be ignored.
     */
    //private String reuseSysCveAllowlist;
    /**
     * If the vulnerability is high than severity defined here, the images can't be pulled. The
     * valid values are "none", "low", "medium", "high", "critical".
     */
    //private String severity;
}